package 网络编程UDP通信.多发_多收;

import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class Server {
    public static void main(String[] args) throws Exception{
        System.out.println("服务端启动");
        // 1. 创建一个服务端对象
        DatagramSocket socket = new DatagramSocket(6666);

        // 2. 创建一个数据包对象, 用于接收数据的
        byte[] buffer = new byte[1024 * 64]; // 64KB
        DatagramPacket packet = new DatagramPacket(buffer,buffer.length);

        while (true) {
            // 3. 开始正式使用数据包来接收客户端发来的数据
            socket.receive(packet);

            // 4. 从字节数组中把接收到的数据直接打印出来
            // 实现读取多少, 倒多少原则(目的是不要倒多数据)
            int len = packet.getLength();
            String s = new String(buffer,0,len);
            System.out.println(s);

            System.out.println(packet.getAddress().getHostAddress()); // 客户端的IP地址

            System.out.println(packet.getPort());

            System.out.println("-------------------------");
        }


    }
}
